package com.joysuch.wwyt.bp.service;

import com.joysuch.wwyt.bp.bean.BpInvestigatePlanReqBean;
import com.joysuch.wwyt.bp.bean.investigate.*;
import com.joysuch.wwyt.bp.bean.investigate.vo.InvestigatePlanVO;
import com.joysuch.wwyt.bp.entity.investigate.BpInvestigatePlan;
import com.joysuch.wwyt.bp.entity.investigate.BpInvestigateType;
import com.joysuch.wwyt.core.common.ajax.ResultBean;
import com.joysuch.wwyt.core.exception.ApiBusinessException;

import java.util.List;

/**
 * @Author ZhangDong
 * @Date 2020/3/25 16:21
 */
public interface BpInvestigatePlanService {

    ResultBean save(BpInvestigatePlanBean bean);

    ResultBean delete(Long id);

    ResultBean page(BpInvestigatePlanQueryBean bean);

    ResultBean getById(Long id, Integer flag);

    ResultBean getPlanById(Long id, Integer flag);

    List<BpInvestigatePlan> getList();

    ResultBean openClose(Long id, String state);

    void batchSwitch(BpInvestigatePlanReqBean bean);

    void produceTaskForOld();

    List<BpInvestigateAppTaskDto> appNeedDo();

    ResultBean taskPage(BpInvestigateTaskQueryBean bean);

    void saveBatch(InvestigatePlan plan,Boolean batchFlag);

    InvestigatePlanVO getByContentIds(List<Long> dangerContentIds, List<Long> itemIds);

    void produceTaskForNew();

    void deleteByHiddenDangerContentIds (List<Long> ids);

    void updateInitiateStatusByIds(List<Long> ids);

    BpInvestigateType saveInvestigateType();

    void taskTimeOutCheckByHand();

    Integer changeStatusBatch(Integer flag, List<Long> contentIds);

    void addUncheckAppNotify(BpInvestigatePlan plan,Long taskId, boolean needPush,boolean noCheck);

    List<BpInvestigatePlan> findByIds(List<Long> ids);

    List<BpInvestigatePlanBean> findBeanByIds(List<Long> ids);

    void regenTask(List<Long> planIds) throws ApiBusinessException;

    List<Long> getPlanId(List<Long> contentIds);

    List<Long> getPlanIdByContentId(List<Long> contentIds);

    String regenAllTask();

    void deleteTaskByPlanId(List<Long> planIds);

    List<BpInvestigatePlan> findByRiskPointEvaluationId(Long riskPointEvaluationId);

}
